package com.linq.cool.beauty.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.linq.cool.beauty.domain.BeautyTopUp;
import com.linq.cool.beauty.dto.BeautyTopUpQueryDTO;
import com.linq.cool.beauty.dto.BeautyTopUpSelfQueryDTO;
import com.linq.cool.beauty.vo.statistical.MonthlyIncomeVO;
import com.linq.cool.beauty.vo.statistical.StatisticalVO;

import java.util.List;

/**
 * @Author: yqlin
 * @Date: 2021/2/2 22:37
 * @Description:
 * @Version: 1.0.0
 */
public interface BeautyTopUpService extends IService<BeautyTopUp> {

    /**
     * 支付成功
     *
     * @param payPlatformId 平台交易ID 如果是现金，则为空
     * @param orderId       订单id
     * @param payType       支付类型
     */
    void paySuccess(String orderId, String payPlatformId, Integer payType);

    /**
     * 分页条件查询充值订单日志
     *
     * @param page 分页对象
     * @param dto  条件
     *
     * @return 结果
     */
    IPage<BeautyTopUp> listByPage(IPage<BeautyTopUp> page, BeautyTopUpQueryDTO dto);


    /**
     * 条件分页根据客户i查询列表
     *
     * @param page
     * @param dto
     *
     * @return
     */
    IPage<BeautyTopUp> listBySelfPage(IPage<BeautyTopUp> page, BeautyTopUpSelfQueryDTO dto);

    /**
     * 先查询近6个月的月份的收入统计
     *
     * @return
     */
    MonthlyIncomeVO statisticalMonthlyIncome();


    /**
     * 统计消费榜前10
     *
     * @return
     */
    List<StatisticalVO> statisticalTopTenSpenders();

    /**
     * 根据客户id查询出当前客户的最近6月份的充值情况
     *
     * @param memberId
     *
     * @return
     */
    List<StatisticalVO> statisticMemberTopUp(Long memberId);
}
